<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>PackagingURIHelper (POI API Documentation)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="PackagingURIHelper (POI API Documentation)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PackagingURIHelper.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/poi/openxml4j/opc/PackageRelationshipTypes.html" title="interface in org.apache.poi.openxml4j.opc"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../../org/apache/poi/openxml4j/opc/RelationshipSource.html" title="interface in org.apache.poi.openxml4j.opc"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/poi/openxml4j/opc/PackagingURIHelper.html" target="_top">FRAMES</a></li>
<li><a href="PackagingURIHelper.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li>NESTED&nbsp;|&nbsp;</li>
<li><a href="#field_summary">FIELD</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li><a href="#field_detail">FIELD</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<p class="subTitle">org.apache.poi.openxml4j.opc</p>
<h2 title="Class PackagingURIHelper" class="title">Class PackagingURIHelper</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.poi.openxml4j.opc.PackagingURIHelper</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <strong>PackagingURIHelper</strong>
extends java.lang.Object</pre>
<div class="block">Helper for part and pack URI.</div>
<dl><dt><span class="strong">Version:</span></dt>
  <dd>0.1</dd>
<dt><span class="strong">Author:</span></dt>
  <dd>Julien Chable, CDubet, Kim Ung</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#CORE_PROPERTIES_PART_NAME">CORE_PROPERTIES_PART_NAME</a></strong></code>
<div class="block">Core properties partname.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.net.URI</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#CORE_PROPERTIES_URI">CORE_PROPERTIES_URI</a></strong></code>
<div class="block">Core properties part URI.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static char</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#FORWARD_SLASH_CHAR">FORWARD_SLASH_CHAR</a></strong></code>
<div class="block">Forward slash URI separator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#FORWARD_SLASH_STRING">FORWARD_SLASH_STRING</a></strong></code>
<div class="block">Forward slash URI separator.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#PACKAGE_CORE_PROPERTIES_NAME">PACKAGE_CORE_PROPERTIES_NAME</a></strong></code>
<div class="block">Core package properties art name.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#PACKAGE_PROPERTIES_SEGMENT_NAME">PACKAGE_PROPERTIES_SEGMENT_NAME</a></strong></code>
<div class="block">Segment name of the package properties folder.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#PACKAGE_RELATIONSHIPS_ROOT_PART_NAME">PACKAGE_RELATIONSHIPS_ROOT_PART_NAME</a></strong></code>
<div class="block">Package relationships part name.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.net.URI</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#PACKAGE_RELATIONSHIPS_ROOT_URI">PACKAGE_RELATIONSHIPS_ROOT_URI</a></strong></code>
<div class="block">Package relationships part URI</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#PACKAGE_ROOT_PART_NAME">PACKAGE_ROOT_PART_NAME</a></strong></code>
<div class="block">Root package part name.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.net.URI</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#PACKAGE_ROOT_URI">PACKAGE_ROOT_URI</a></strong></code>
<div class="block">Root package URI.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#RELATIONSHIP_PART_EXTENSION_NAME">RELATIONSHIP_PART_EXTENSION_NAME</a></strong></code>
<div class="block">Extension name of a relationship part.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#RELATIONSHIP_PART_SEGMENT_NAME">RELATIONSHIP_PART_SEGMENT_NAME</a></strong></code>
<div class="block">Segment name of a relationship part.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#PackagingURIHelper()">PackagingURIHelper</a></strong>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#combine(java.lang.String, java.lang.String)">combine</a></strong>(java.lang.String&nbsp;prefix,
       java.lang.String&nbsp;suffix)</code>
<div class="block">Combine a string URI with a prefix and a suffix.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.net.URI</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#combine(java.net.URI, java.net.URI)">combine</a></strong>(java.net.URI&nbsp;prefix,
       java.net.URI&nbsp;suffix)</code>
<div class="block">Combine two URIs.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#createPartName(java.lang.String)">createPartName</a></strong>(java.lang.String&nbsp;partName)</code>
<div class="block">Create an OPC compliant part name.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#createPartName(java.lang.String, org.apache.poi.openxml4j.opc.PackagePart)">createPartName</a></strong>(java.lang.String&nbsp;partName,
              <a href="../../../../../org/apache/poi/openxml4j/opc/PackagePart.html" title="class in org.apache.poi.openxml4j.opc">PackagePart</a>&nbsp;relativePart)</code>
<div class="block">Create an OPC compliant part name by resolving it using a base part.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#createPartName(java.net.URI)">createPartName</a></strong>(java.net.URI&nbsp;partUri)</code>
<div class="block">Create an OPC compliant part name by throwing an exception if the URI is
 not valid.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#createPartName(java.net.URI, org.apache.poi.openxml4j.opc.PackagePart)">createPartName</a></strong>(java.net.URI&nbsp;partName,
              <a href="../../../../../org/apache/poi/openxml4j/opc/PackagePart.html" title="class in org.apache.poi.openxml4j.opc">PackagePart</a>&nbsp;relativePart)</code>
<div class="block">Create an OPC compliant part name by resolving it using a base part.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#decodeURI(java.net.URI)">decodeURI</a></strong>(java.net.URI&nbsp;uri)</code>
<div class="block">Decode a URI by converting all percent encoded character into a String
 character.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#encode(java.lang.String)">encode</a></strong>(java.lang.String&nbsp;s)</code>
<div class="block">percent-encode white spaces and characters above 0x80.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#getFilename(java.net.URI)">getFilename</a></strong>(java.net.URI&nbsp;uri)</code>
<div class="block">Get file name from the specified URI.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#getFilenameWithoutExtension(java.net.URI)">getFilenameWithoutExtension</a></strong>(java.net.URI&nbsp;uri)</code>
<div class="block">Get the file name without the trailing extension.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.net.URI</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#getPackageRootUri()">getPackageRootUri</a></strong>()</code>
<div class="block">Gets the URI for the package root.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.net.URI</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#getPath(java.net.URI)">getPath</a></strong>(java.net.URI&nbsp;uri)</code>
<div class="block">Get the directory path from the specified URI.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#getRelationshipPartName(org.apache.poi.openxml4j.opc.PackagePartName)">getRelationshipPartName</a></strong>(<a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a>&nbsp;partName)</code>
<div class="block">Build a part name where the relationship should be stored ((ex
 /word/document.xml -> /word/_rels/document.xml.rels)</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.net.URI</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#getSourcePartUriFromRelationshipPartUri(java.net.URI)">getSourcePartUriFromRelationshipPartUri</a></strong>(java.net.URI&nbsp;relationshipPartUri)</code>
<div class="block">Get the source part URI from a specified relationships part.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.net.URI</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#getURIFromPath(java.lang.String)">getURIFromPath</a></strong>(java.lang.String&nbsp;path)</code>
<div class="block">Get URI from a string path.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#isRelationshipPartURI(java.net.URI)">isRelationshipPartURI</a></strong>(java.net.URI&nbsp;partUri)</code>
<div class="block">Know if the specified URI is a relationship part name.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#isValidPartName(java.net.URI)">isValidPartName</a></strong>(java.net.URI&nbsp;partUri)</code>
<div class="block">Validate a part URI by returning a boolean.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.net.URI</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#relativizeURI(java.net.URI, java.net.URI)">relativizeURI</a></strong>(java.net.URI&nbsp;sourceURI,
             java.net.URI&nbsp;targetURI)</code>
<div class="block">Fully relativize the source part URI against the target part URI.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.net.URI</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#relativizeURI(java.net.URI, java.net.URI, boolean)">relativizeURI</a></strong>(java.net.URI&nbsp;sourceURI,
             java.net.URI&nbsp;targetURI,
             boolean&nbsp;msCompatible)</code>
<div class="block">Fully relativize the source part URI against the target part URI.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.net.URI</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#resolvePartUri(java.net.URI, java.net.URI)">resolvePartUri</a></strong>(java.net.URI&nbsp;sourcePartUri,
              java.net.URI&nbsp;targetUri)</code>
<div class="block">Resolve a source uri against a target.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.net.URI</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#toURI(java.lang.String)">toURI</a></strong>(java.lang.String&nbsp;value)</code>
<div class="block">Convert a string to <code>URI</code>

 If  part name is not a valid URI, it is resolved as follows:</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="RELATIONSHIP_PART_EXTENSION_NAME">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RELATIONSHIP_PART_EXTENSION_NAME</h4>
<pre>public static final&nbsp;java.lang.String RELATIONSHIP_PART_EXTENSION_NAME</pre>
<div class="block">Extension name of a relationship part.</div>
</li>
</ul>
<a name="RELATIONSHIP_PART_SEGMENT_NAME">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RELATIONSHIP_PART_SEGMENT_NAME</h4>
<pre>public static final&nbsp;java.lang.String RELATIONSHIP_PART_SEGMENT_NAME</pre>
<div class="block">Segment name of a relationship part.</div>
</li>
</ul>
<a name="PACKAGE_PROPERTIES_SEGMENT_NAME">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PACKAGE_PROPERTIES_SEGMENT_NAME</h4>
<pre>public static final&nbsp;java.lang.String PACKAGE_PROPERTIES_SEGMENT_NAME</pre>
<div class="block">Segment name of the package properties folder.</div>
</li>
</ul>
<a name="PACKAGE_CORE_PROPERTIES_NAME">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PACKAGE_CORE_PROPERTIES_NAME</h4>
<pre>public static final&nbsp;java.lang.String PACKAGE_CORE_PROPERTIES_NAME</pre>
<div class="block">Core package properties art name.</div>
</li>
</ul>
<a name="FORWARD_SLASH_CHAR">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FORWARD_SLASH_CHAR</h4>
<pre>public static final&nbsp;char FORWARD_SLASH_CHAR</pre>
<div class="block">Forward slash URI separator.</div>
</li>
</ul>
<a name="FORWARD_SLASH_STRING">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FORWARD_SLASH_STRING</h4>
<pre>public static final&nbsp;java.lang.String FORWARD_SLASH_STRING</pre>
<div class="block">Forward slash URI separator.</div>
</li>
</ul>
<a name="PACKAGE_RELATIONSHIPS_ROOT_URI">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PACKAGE_RELATIONSHIPS_ROOT_URI</h4>
<pre>public static final&nbsp;java.net.URI PACKAGE_RELATIONSHIPS_ROOT_URI</pre>
<div class="block">Package relationships part URI</div>
</li>
</ul>
<a name="PACKAGE_RELATIONSHIPS_ROOT_PART_NAME">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PACKAGE_RELATIONSHIPS_ROOT_PART_NAME</h4>
<pre>public static final&nbsp;<a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a> PACKAGE_RELATIONSHIPS_ROOT_PART_NAME</pre>
<div class="block">Package relationships part name.</div>
</li>
</ul>
<a name="CORE_PROPERTIES_URI">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CORE_PROPERTIES_URI</h4>
<pre>public static final&nbsp;java.net.URI CORE_PROPERTIES_URI</pre>
<div class="block">Core properties part URI.</div>
</li>
</ul>
<a name="CORE_PROPERTIES_PART_NAME">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CORE_PROPERTIES_PART_NAME</h4>
<pre>public static final&nbsp;<a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a> CORE_PROPERTIES_PART_NAME</pre>
<div class="block">Core properties partname.</div>
</li>
</ul>
<a name="PACKAGE_ROOT_URI">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PACKAGE_ROOT_URI</h4>
<pre>public static final&nbsp;java.net.URI PACKAGE_ROOT_URI</pre>
<div class="block">Root package URI.</div>
</li>
</ul>
<a name="PACKAGE_ROOT_PART_NAME">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PACKAGE_ROOT_PART_NAME</h4>
<pre>public static final&nbsp;<a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a> PACKAGE_ROOT_PART_NAME</pre>
<div class="block">Root package part name.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="PackagingURIHelper()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PackagingURIHelper</h4>
<pre>public&nbsp;PackagingURIHelper()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getPackageRootUri()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPackageRootUri</h4>
<pre>public static&nbsp;java.net.URI&nbsp;getPackageRootUri()</pre>
<div class="block">Gets the URI for the package root.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>URI of the package root.</dd></dl>
</li>
</ul>
<a name="isRelationshipPartURI(java.net.URI)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRelationshipPartURI</h4>
<pre>public static&nbsp;boolean&nbsp;isRelationshipPartURI(java.net.URI&nbsp;partUri)</pre>
<div class="block">Know if the specified URI is a relationship part name.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>partUri</code> - URI to check.</dd>
<dt><span class="strong">Returns:</span></dt><dd><i>true</i> if the URI <i>false</i>.</dd></dl>
</li>
</ul>
<a name="getFilename(java.net.URI)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFilename</h4>
<pre>public static&nbsp;java.lang.String&nbsp;getFilename(java.net.URI&nbsp;uri)</pre>
<div class="block">Get file name from the specified URI.</div>
</li>
</ul>
<a name="getFilenameWithoutExtension(java.net.URI)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFilenameWithoutExtension</h4>
<pre>public static&nbsp;java.lang.String&nbsp;getFilenameWithoutExtension(java.net.URI&nbsp;uri)</pre>
<div class="block">Get the file name without the trailing extension.</div>
</li>
</ul>
<a name="getPath(java.net.URI)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPath</h4>
<pre>public static&nbsp;java.net.URI&nbsp;getPath(java.net.URI&nbsp;uri)</pre>
<div class="block">Get the directory path from the specified URI.</div>
</li>
</ul>
<a name="combine(java.net.URI, java.net.URI)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>combine</h4>
<pre>public static&nbsp;java.net.URI&nbsp;combine(java.net.URI&nbsp;prefix,
                   java.net.URI&nbsp;suffix)</pre>
<div class="block">Combine two URIs.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>prefix</code> - the prefix URI</dd><dd><code>suffix</code> - the suffix URI</dd>
<dt><span class="strong">Returns:</span></dt><dd>the combined URI</dd></dl>
</li>
</ul>
<a name="combine(java.lang.String, java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>combine</h4>
<pre>public static&nbsp;java.lang.String&nbsp;combine(java.lang.String&nbsp;prefix,
                       java.lang.String&nbsp;suffix)</pre>
<div class="block">Combine a string URI with a prefix and a suffix.</div>
</li>
</ul>
<a name="relativizeURI(java.net.URI, java.net.URI, boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>relativizeURI</h4>
<pre>public static&nbsp;java.net.URI&nbsp;relativizeURI(java.net.URI&nbsp;sourceURI,
                         java.net.URI&nbsp;targetURI,
                         boolean&nbsp;msCompatible)</pre>
<div class="block">Fully relativize the source part URI against the target part URI.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sourceURI</code> - The source part URI.</dd><dd><code>targetURI</code> - The target part URI.</dd><dd><code>msCompatible</code> - if true then remove leading slash from the relativized URI.
         This flag violates [M1.4]: A part name shall start with a forward slash ('/') character, but
         allows generating URIs compatible with MS Office and OpenOffice.</dd>
<dt><span class="strong">Returns:</span></dt><dd>A fully relativize part name URI ('word/media/image1.gif',
         '/word/document.xml' => 'media/image1.gif') else
         <code>null</code>.</dd></dl>
</li>
</ul>
<a name="relativizeURI(java.net.URI, java.net.URI)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>relativizeURI</h4>
<pre>public static&nbsp;java.net.URI&nbsp;relativizeURI(java.net.URI&nbsp;sourceURI,
                         java.net.URI&nbsp;targetURI)</pre>
<div class="block">Fully relativize the source part URI against the target part URI.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sourceURI</code> - The source part URI.</dd><dd><code>targetURI</code> - The target part URI.</dd>
<dt><span class="strong">Returns:</span></dt><dd>A fully relativize part name URI ('word/media/image1.gif',
         '/word/document.xml' => 'media/image1.gif') else
         <code>null</code>.</dd></dl>
</li>
</ul>
<a name="resolvePartUri(java.net.URI, java.net.URI)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resolvePartUri</h4>
<pre>public static&nbsp;java.net.URI&nbsp;resolvePartUri(java.net.URI&nbsp;sourcePartUri,
                          java.net.URI&nbsp;targetUri)</pre>
<div class="block">Resolve a source uri against a target.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>sourcePartUri</code> - The source URI.</dd><dd><code>targetUri</code> - The target URI.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The resolved URI.</dd></dl>
</li>
</ul>
<a name="getURIFromPath(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getURIFromPath</h4>
<pre>public static&nbsp;java.net.URI&nbsp;getURIFromPath(java.lang.String&nbsp;path)</pre>
<div class="block">Get URI from a string path.</div>
</li>
</ul>
<a name="getSourcePartUriFromRelationshipPartUri(java.net.URI)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSourcePartUriFromRelationshipPartUri</h4>
<pre>public static&nbsp;java.net.URI&nbsp;getSourcePartUriFromRelationshipPartUri(java.net.URI&nbsp;relationshipPartUri)</pre>
<div class="block">Get the source part URI from a specified relationships part.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>relationshipPartUri</code> - The relationship part use to retrieve the source part.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The source part URI from the specified relationships part.</dd></dl>
</li>
</ul>
<a name="createPartName(java.net.URI)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createPartName</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a>&nbsp;createPartName(java.net.URI&nbsp;partUri)
                                      throws <a href="../../../../../org/apache/poi/openxml4j/exceptions/InvalidFormatException.html" title="class in org.apache.poi.openxml4j.exceptions">InvalidFormatException</a></pre>
<div class="block">Create an OPC compliant part name by throwing an exception if the URI is
 not valid.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>partUri</code> - The part name URI to validate.</dd>
<dt><span class="strong">Returns:</span></dt><dd>A valid part name object, else <code>null</code>.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/poi/openxml4j/exceptions/InvalidFormatException.html" title="class in org.apache.poi.openxml4j.exceptions">InvalidFormatException</a></code> - Throws if the specified URI is not OPC compliant.</dd></dl>
</li>
</ul>
<a name="createPartName(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createPartName</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a>&nbsp;createPartName(java.lang.String&nbsp;partName)
                                      throws <a href="../../../../../org/apache/poi/openxml4j/exceptions/InvalidFormatException.html" title="class in org.apache.poi.openxml4j.exceptions">InvalidFormatException</a></pre>
<div class="block">Create an OPC compliant part name.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>partName</code> - The part name to validate.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The correspondant part name if valid, else <code>null</code>.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/poi/openxml4j/exceptions/InvalidFormatException.html" title="class in org.apache.poi.openxml4j.exceptions">InvalidFormatException</a></code> - Throws if the specified part name is not OPC compliant.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#createPartName(java.net.URI)"><code>createPartName(URI)</code></a></dd></dl>
</li>
</ul>
<a name="createPartName(java.lang.String, org.apache.poi.openxml4j.opc.PackagePart)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createPartName</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a>&nbsp;createPartName(java.lang.String&nbsp;partName,
                             <a href="../../../../../org/apache/poi/openxml4j/opc/PackagePart.html" title="class in org.apache.poi.openxml4j.opc">PackagePart</a>&nbsp;relativePart)
                                      throws <a href="../../../../../org/apache/poi/openxml4j/exceptions/InvalidFormatException.html" title="class in org.apache.poi.openxml4j.exceptions">InvalidFormatException</a></pre>
<div class="block">Create an OPC compliant part name by resolving it using a base part.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>partName</code> - The part name to validate.</dd><dd><code>relativePart</code> - The relative base part.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The correspondant part name if valid, else <code>null</code>.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/poi/openxml4j/exceptions/InvalidFormatException.html" title="class in org.apache.poi.openxml4j.exceptions">InvalidFormatException</a></code> - Throws if the specified part name is not OPC compliant.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#createPartName(java.net.URI)"><code>createPartName(URI)</code></a></dd></dl>
</li>
</ul>
<a name="createPartName(java.net.URI, org.apache.poi.openxml4j.opc.PackagePart)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createPartName</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a>&nbsp;createPartName(java.net.URI&nbsp;partName,
                             <a href="../../../../../org/apache/poi/openxml4j/opc/PackagePart.html" title="class in org.apache.poi.openxml4j.opc">PackagePart</a>&nbsp;relativePart)
                                      throws <a href="../../../../../org/apache/poi/openxml4j/exceptions/InvalidFormatException.html" title="class in org.apache.poi.openxml4j.exceptions">InvalidFormatException</a></pre>
<div class="block">Create an OPC compliant part name by resolving it using a base part.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>partName</code> - The part name URI to validate.</dd><dd><code>relativePart</code> - The relative base part.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The correspondant part name if valid, else <code>null</code>.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/poi/openxml4j/exceptions/InvalidFormatException.html" title="class in org.apache.poi.openxml4j.exceptions">InvalidFormatException</a></code> - Throws if the specified part name is not OPC compliant.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#createPartName(java.net.URI)"><code>createPartName(URI)</code></a></dd></dl>
</li>
</ul>
<a name="isValidPartName(java.net.URI)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidPartName</h4>
<pre>public static&nbsp;boolean&nbsp;isValidPartName(java.net.URI&nbsp;partUri)</pre>
<div class="block">Validate a part URI by returning a boolean.
 ([M1.1],[M1.3],[M1.4],[M1.5],[M1.6])

 (OPC Specifications 8.1.1 Part names) :

 Part Name Syntax

 The part name grammar is defined as follows:

 <i>part_name = 1*( "/" segment )

 segment = 1*( pchar )</i>


 (pchar is defined in RFC 3986)</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>partUri</code> - The URI to validate.</dd>
<dt><span class="strong">Returns:</span></dt><dd><b>true</b> if the URI is valid to the OPC Specifications, else
         <b>false</b></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/poi/openxml4j/opc/PackagingURIHelper.html#createPartName(java.net.URI)"><code>createPartName(URI)</code></a></dd></dl>
</li>
</ul>
<a name="decodeURI(java.net.URI)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decodeURI</h4>
<pre>public static&nbsp;java.lang.String&nbsp;decodeURI(java.net.URI&nbsp;uri)</pre>
<div class="block">Decode a URI by converting all percent encoded character into a String
 character.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>uri</code> - The URI to decode.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The specified URI in a String with converted percent encoded
         characters.</dd></dl>
</li>
</ul>
<a name="getRelationshipPartName(org.apache.poi.openxml4j.opc.PackagePartName)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRelationshipPartName</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a>&nbsp;getRelationshipPartName(<a href="../../../../../org/apache/poi/openxml4j/opc/PackagePartName.html" title="class in org.apache.poi.openxml4j.opc">PackagePartName</a>&nbsp;partName)</pre>
<div class="block">Build a part name where the relationship should be stored ((ex
 /word/document.xml -> /word/_rels/document.xml.rels)</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>partName</code> - Source part URI</dd>
<dt><span class="strong">Returns:</span></dt><dd>the full path (as URI) of the relation file</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/poi/openxml4j/exceptions/InvalidOperationException.html" title="class in org.apache.poi.openxml4j.exceptions">InvalidOperationException</a></code> - Throws if the specified URI is a relationshp part.</dd></dl>
</li>
</ul>
<a name="toURI(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toURI</h4>
<pre>public static&nbsp;java.net.URI&nbsp;toURI(java.lang.String&nbsp;value)
                          throws java.net.URISyntaxException</pre>
<div class="block">Convert a string to <code>URI</code>

 If  part name is not a valid URI, it is resolved as follows:
 <p>
 1. Percent-encode each open bracket ([) and close bracket (]).</li>
 2. Percent-encode each percent (%) character that is not followed by a hexadecimal notation of an octet value.</li>
 3. Un-percent-encode each percent-encoded unreserved character.
 4. Un-percent-encode each forward slash (/) and back slash (\).
 5. Convert all back slashes to forward slashes.
 6. If present in a segment containing non-dot (?.?) characters, remove trailing dot (?.?) characters from each segment.
 7. Replace each occurrence of multiple consecutive forward slashes (/) with a single forward slash.
 8. If a single trailing forward slash (/) is present, remove that trailing forward slash.
 9. Remove complete segments that consist of three or more dots.
 10. Resolve the relative reference against the base URI of the part holding the Unicode string, as it is defined
 in ?5.2 of RFC 3986. The path component of the resulting absolute URI is the part name.
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - the string to be parsed into a URI</dd>
<dt><span class="strong">Returns:</span></dt><dd>the resolved part name that should be OK to construct a URI

 TODO YK: for now this method does only (5). Finish the rest.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code>java.net.URISyntaxException</code></dd></dl>
</li>
</ul>
<a name="encode(java.lang.String)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>encode</h4>
<pre>public static&nbsp;java.lang.String&nbsp;encode(java.lang.String&nbsp;s)</pre>
<div class="block">percent-encode white spaces and characters above 0x80.
 <p>
   Examples:
   'Apache POI' --> 'Apache%20POI'
   'ApacheАPOI' --> 'Apache%04%10POI'</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>s</code> - the string to encode</dd>
<dt><span class="strong">Returns:</span></dt><dd>the encoded string</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PackagingURIHelper.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/poi/openxml4j/opc/PackageRelationshipTypes.html" title="interface in org.apache.poi.openxml4j.opc"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../../org/apache/poi/openxml4j/opc/RelationshipSource.html" title="interface in org.apache.poi.openxml4j.opc"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/poi/openxml4j/opc/PackagingURIHelper.html" target="_top">FRAMES</a></li>
<li><a href="PackagingURIHelper.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li>NESTED&nbsp;|&nbsp;</li>
<li><a href="#field_summary">FIELD</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li><a href="#field_detail">FIELD</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>
                <i>Copyright 2014 The Apache Software Foundation or
        its licensors, as applicable.</i>
            </small></p>
</body>
</html>
